package StudyCode.summary.textfile;

import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 版权所有 科技与人文(www.tah1986.com)
 */
public class ApplyingRegularExpressionsContentsOfFile {
	public static void main(String[] argv) {
		try {
			Pattern pattern = Pattern.compile("pattern");
			Matcher matcher = pattern.matcher(fromFile("E:/Copy/test1.txt"));

			while (matcher.find()) {
				String match = matcher.group();
				System.out.println(match);
			}
			System.out.println("正则表达式匹配完毕");
		} catch (IOException e) {
		}
	}

	public static CharSequence fromFile(String filename) throws IOException {
		FileInputStream fis = new FileInputStream(filename);
		FileChannel fc = fis.getChannel();

		ByteBuffer bbuf = fc.map(FileChannel.MapMode.READ_ONLY, 0, (int) fc.size());
		CharBuffer cbuf = Charset.forName("8859_1").newDecoder().decode(bbuf);
		return cbuf;
	}
}
